This invention relates to report generation in a distributed computing processing environment.
The Internet and, in particular, the world wide web portion of the Internet, has grown to be of significant importance in delivering information to users. One use of the Internet is to deliver information to subscribers. This information can be in various forms and can be provided using various presentation techniques.
Current systems available for delivering information typically involve a user requesting a download of some information that already exists on a server.
Subscribers to data providing systems can request reports containing data which are dynamically generated at request time. One example of such reports are reports containing financial data. For such reports, several characteristics are important. One characteristic is that the reports are generated from current data. A second characteristic is that the reports are dynamically generated from data that is retrieved from a database. Thirdly, the reports are often intended for an executive level audience in large corporations. Therefore, in addition to containing accurate data, the reports should be of presentation quality.
According to an aspect of the invention, a process for generating reports from a desktop application program residing on a server computer system for delivery over a network computer system includes a data services process that maintains state information of report generation objects. The data services process transfers data to satisfy report generation objects. The process also includes an object management process that manages the report generation objects that are sent to the data services process. The object management process includes a report agent process that instantiates instances of a report generation object that encapsulates instances of the desktop application to produce reports based on data supplied by the data services process, in accordance with a particular instance of the report generation object. The process also includes a user interface process that manages report requests that are fed to the data services process.
According to a further aspect of the invention, a computer program product resides on a computer readable medium for generating reports from a desktop application program. The product can reside on a server computer and includes instructions for causing the server computer to produce report generation objects in response to a user request for a report and maintain state information of report generation objects. The program also includes instructions that cause the computer to transfer data to satisfy report generation objects and instantiate instances of report generation objects that encapsulate instances of the desktop application to produce reports, in accordance with the report generation object.
According to a still further aspect of the invention, a networked computer system includes a plurality of client systems and at least one server system. The server system is coupled to the client systems by a network and the server system includes a database and a server process for generating reports. The server process includes a data services process that maintains state information of report generation objects and transfers data from the database to satisfy report generation objects. The server process also includes an object management process that manages the report generation objects that are sent to the data services process. The object management process includes a report agent process. The report agent process instantiates instances of a report generation object that encapsulates instances of the desktop application to produce reports based on data supplied by the data services process. The data services process retrieving the data from the database in accordance with a particular instance of the report generation object. The server process also includes a user interface process that manages report requests that are fed to the data services process.
One or more advantages can be provided from the above. The report generation facility can have the capacity to handle a large volume of report requests. The report generation architecture uses a desktop application as a server application. By encapsulating instantiations of the application it permits it to run as a server designed application. The report generation architecture minimizes the impact of a large number of requests on server response time. This can enable the server to have a high response rate or indeed, mitigate crashes of the server. While maintaining performance the report generation architecture enables the use of the presentation qualities found in desk-top applications.